{{+bindTo:partials.standard_nacl_article}}

<b><font color="#cc0000">
NOTE:
Deprecation of the technologies described here has been announced
for platforms other than ChromeOS.<br/>
Please visit our
<a href="/native-client/migration">migration guide</a>
for details.
</font></b>
<hr/><section id="chrome-dev-summit-2014-native-client-codelabs">
<h1 id="chrome-dev-summit-2014-native-client-codelabs">Chrome Dev Summit 2014 - Native Client Codelabs</h1>
<h2 id="a-crossroads">A Crossroads</h2>
<p>For your coding pleasure, we have two codelabs.
Depending on your interests and prior experience,
check out one or both.</p>
<p>Learn how easy it is to edit, build, and run NaCl applications
all in your desktop web browser or on a Chromebook.</p>
<h2 id="codelab-1-what-a-difference-python-makes">Codelab #1 - What a Difference Python Makes</h2>
<p>Learn how you can use client-side Python on your webpage.
Use the python <a href="https://docs.python.org/2/library/difflib.html"
 target="_blank">difflib</a> module to generate attractive online
textual diffs.
Develop inside Google Chrome, using a hot off the presses version
of our NaCl Dev Environment, running on a webpage,
powered by Portable Native Client.
The techniques in this codelab also apply to other interpreted languages
we&#8217;ve ported to PNaCl, including: Python, Lua, Ruby, Tcl, Bash, and Forth.</p>
<dl class="docutils">
<dt>Requirements:</dt>
<dd><ul class="first last small-gap">
<li>A Desktop / Laptop Windows, Mac, Linux, or ChromeOS browser
<br/><span id="python_compat" style="color: #cccc00"
    >Checking browser compatibility...</span><br/>
<i id="python_compat2"></i>
<script>
var tag = document.getElementById('python_compat');
var tag2 = document.getElementById('python_compat2');
if (!('application/x-pnacl' in navigator.mimeTypes)) {
  tag.innerHTML =
      'This codelab does not appear to be supported by your browser.';
  tag.style.color = '#cc0000';
  tag2.innerHTML =
      'You do not appear to be running a browser such as ' +
      'Google Chrome which supports Portable Native Client ' +
      'or you have disabled Portable Native Client.';
} else {
  tag.innerHTML = 'This codelab appears to be supported by your browser.';
  tag.style.color = '#00cc00';
}
</script></li>
<li>A fast broadband connection (500MB download)</li>
<li>Can read and write Python</li>
</ul>
</dd>
</dl>
<p><a class="reference external" href="python">Click here for Codelab #1 - What a Difference Python Makes</a></p>
<h2 id="codelab-2-a-saga-of-fire-and-water">Codelab #2 - A Saga of Fire and Water</h2>
<p>Learn the basics of using PPAPI to do 2D graphics from
a C++ program running in Native Client.
Modify our sample to turn fire into water.
Develop inside Google Chrome, using our NaCl Development Environment
Chrome App.
While this codelab currently targets conventional Native Client using our
GCC + GlibC based toolchain, the techniques involved are generally
applicable.</p>
<dl class="docutils">
<dt>Requirements:</dt>
<dd><ul class="first last small-gap">
<li>An x86 (sorry no arm) Desktop / Laptop
Windows, Mac, Linux, or ChromeOS browser
<br/><span id="cpp_compat" style="color: #cccc00"
    >Checking browser compatibility...</span><br/>
<i id="cpp_compat2"></i>
<script>
var tag = document.getElementById('cpp_compat');
var tag2 = document.getElementById('cpp_compat2');
if (!('application/x-nacl' in navigator.mimeTypes)) {
  tag.innerHTML =
      'This codelab does not appear to be supported by your browser.';
  tag.style.color = '#cc0000';
  tag2.innerHTML =
      'You do not appear to be running a browser such as ' +
      'Google Chrome which supports Native Client ' +
      'or you have disabled Native Client.';
} else if (navigator.userAgent.search(' arm') >= 0) {
  tag.innerHTML =
      'This codelab does not appear to be supported by your browser.';
  tag.style.color = '#cc0000';
  tag2.innerHTML =
      'You appear to be running on an ARM based CPU. ' +
      'While Native Client does support ARM, ' +
      "our developer environment's GCC + GlibC based toolchain " +
      'does not, at this time. Sorry.';
} else {
  tag.innerHTML = 'This codelab appears to be supported by your browser.';
  tag.style.color = '#00cc00';
}
</script></li>
<li>A fast broadband connection (500MB download)</li>
<li>Can read and write C++</li>
</ul>
</dd>
</dl>
<p><a class="reference external" href="cpp">Click here for Codelab #2 - A Saga of Fire and Water</a></p>
</section>

{{/partials.standard_nacl_article}}
